home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / blackfin / include / asm / blackfin.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.6 KB  |  93 lines

  1. /*
  2.  * Common header file for blackfin family of processors.
  3.  *
  4.  */
  5.  
  6. #ifndef _BLACKFIN_H_
  7. #define _BLACKFIN_H_
  8.  
  9. #define LO(con32) ((con32) & 0xFFFF)
  10. #define lo(con32) ((con32) & 0xFFFF)
  11. #define HI(con32) (((con32) >> 16) & 0xFFFF)
  12. #define hi(con32) (((con32) >> 16) & 0xFFFF)
  13.  
  14. #include <mach/anomaly.h>
  15.  
  16. #ifndef __ASSEMBLY__
  17.  
  18. /* SSYNC implementation for C file */
  19. static inline void SSYNC(void)
  20. {
  21.     int _tmp;
  22.     if (ANOMALY_05000312)
  23.         __asm__ __volatile__(
  24.             "cli %0;"
  25.             "nop;"
  26.             "nop;"
  27.             "ssync;"
  28.             "sti %0;"
  29.             : "=d" (_tmp)
  30.         );
  31.     else if (ANOMALY_05000244)
  32.         __asm__ __volatile__(
  33.             "nop;"
  34.             "nop;"
  35.             "nop;"
  36.             "ssync;"
  37.         );
  38.     else
  39.         __asm__ __volatile__("ssync;");
  40. }
  41.  
  42. /* CSYNC implementation for C file */
  43. static inline void CSYNC(void)
  44. {
  45.     int _tmp;
  46.     if (ANOMALY_05000312)
  47.         __asm__ __volatile__(
  48.             "cli %0;"
  49.             "nop;"
  50.             "nop;"
  51.             "csync;"
  52.             "sti %0;"
  53.             : "=d" (_tmp)
  54.         );
  55.     else if (ANOMALY_05000244)
  56.         __asm__ __volatile__(
  57.             "nop;"
  58.             "nop;"
  59.             "nop;"
  60.             "csync;"
  61.         );
  62.     else
  63.         __asm__ __volatile__("csync;");
  64. }
  65.  
  66. #else  /* __ASSEMBLY__ */
  67.  
  68. /* SSYNC & CSYNC implementations for assembly files */
  69.  
  70. #define ssync(x) SSYNC(x)
  71. #define csync(x) CSYNC(x)
  72.  
  73. #if ANOMALY_05000312
  74. #define SSYNC(scratch) cli scratch; nop; nop; SSYNC; sti scratch;
  75. #define CSYNC(scratch) cli scratch; nop; nop; CSYNC; sti scratch;
  76.  
  77. #elif ANOMALY_05000244
  78. #define SSYNC(scratch) nop; nop; nop; SSYNC;
  79. #define CSYNC(scratch) nop; nop; nop; CSYNC;
  80.  
  81. #else
  82. #define SSYNC(scratch) SSYNC;
  83. #define CSYNC(scratch) CSYNC;
  84.  
  85. #endif /* ANOMALY_05000312 & ANOMALY_05000244 handling */
  86.  
  87. #endif /* __ASSEMBLY__ */
  88.  
  89. #include <mach/blackfin.h>
  90. #include <asm/bfin-global.h>
  91.  
  92. #endif                /* _BLACKFIN_H_ */
  93.